/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package carrancao.controlador;

import carrancao.entidades.Categoria;
import carrancao.exception.CadastrarCategoriaException;
import carrancao.repositorio.CategoriaRepositorio;
import java.util.List;
import javax.swing.JOptionPane;

/**
 *
 * @author Lubnnia
 */
public class CategoriaControlador {

    private CategoriaRepositorio categoriaRep;

    public CategoriaControlador() {
        this.categoriaRep = new CategoriaRepositorio();
    }

    public void validarCategoria(Categoria categoria) throws CadastrarCategoriaException {

        if(categoria.getCategoria().equals("")) {
            JOptionPane.showMessageDialog(null, "Favor preencha os campos obrigatórios",
                    "Mensagem do Sistema", JOptionPane.INFORMATION_MESSAGE);
        }

    }

    public void cadastrarCategoria(Categoria categoria) throws CadastrarCategoriaException {

        this.validarCategoria(categoria);

        this.categoriaRep.cadastrarCategoria(categoria);

        JOptionPane.showMessageDialog(null, "Categoria Cadastrada com Sucesso!",
                "Mensagem do Sistema", JOptionPane.INFORMATION_MESSAGE);
    }

    public boolean alterarCategoria(Categoria categoria) throws CadastrarCategoriaException {
        boolean resposta = false;
        if(!(categoria.getCategoria().equals(""))) {
            this.categoriaRep.alterarCategoria(categoria);
            resposta = true;
        } else {
            resposta = false;
        }
        return resposta;
    }

    public void deletarCategoria(Categoria categoria) {

        if(categoria != null) {
            this.categoriaRep.deletarCategoria(categoria);
            JOptionPane.showMessageDialog(null, "Dados Excluídos com Sucesso!",
                    "Mensagem do Sistema", JOptionPane.INFORMATION_MESSAGE);
        } else {
            JOptionPane.showMessageDialog(null, "Categoria não existe!",
                    "Mensagem do Sistema", JOptionPane.INFORMATION_MESSAGE);
        }

    }

    public Categoria pesquisarCategoriaPorID(int id) {

        Categoria categoria = this.categoriaRep.pesquisarCategoriaPorID(id);

        return categoria;

    }

    public List pesquisarCategoriaTodos() {

        List categoria = this.categoriaRep.pesquisarCategoriaTodos();

        return categoria;

    }

    public List pesquisarCategoriaPorNome(String nomeCategoria) {

        List categoria = this.categoriaRep.pesquisarCategoriaPorNome(nomeCategoria);

        return categoria;

    }

}
